#异常
=begin
begin
    语句
rescue(异常类=>异常变量，最后发生的异常对象 $!,位置信息$@,)
    $!.class
    $!.message
    $!.backtrace ($@)
    异常处理
    retry #会死循环
rescue
    (上述异常以外的处理)
ensure
    不管是否发生异常都执行
end    
=end

# rescue修饰符
n=Integer(val) rescue 0

# 其它语法
def foo
    #方法体
    rescue=>ex
        #异常处理
    ensure
        #后处理
end
=begin
Class Foo
    #类定义
    rescue=>ex
        #异常处理
    ensure
        #后处理
end
=end

#异常类
# rescue同时捕捉其子类
MyError=Class.new(StandardError) #等价于 class MyError<StandardError
MyError1=Class.new(MyError)

#抛出异常
# raise 信息
#抛出RuntimeError异常，并在新生成的异常对象中设置作为信息的字符串，下同理
# raise 异常类
# raise 异常类,信息
# raise 
#在rescue外抛出RuntiemError，在rescue中调用时会再次抛出$!